package cn.wolfcode.luowowo.comment.repository;

import cn.wolfcode.luowowo.comment.domain.ScenicComment;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

/**
 * MongoDB 操作攻略评论的crud接口, 功能类似于mybatis中 Mapper
 * 但是功能更加强大, 因为依赖spring-data-jpa这个
 *
 * extends MongoRepository
 *   第一个泛型:操作文档的类型对象:StrategyComment
 *   第二个泛型:文档类型对象的id主键类型: string
 *
 *   @Repository:  spring 加载时会解析式该注解, 为该注解下接口创建实现类
 *
 */
@Repository
public interface IScenicCommentRepository extends MongoRepository<ScenicComment, String> {
    int countByScenicId(Long id);

    /**
     * 评论类型,1为差,2为中,3为好
     * @param category
     * @param id
     * @return
     */
    Integer countByCategoryAndScenicId(Integer category, Long id);
    /**
     * 获取景点评论  带上分页
     * @param scenicId
     * @param pageable
     * @return
     */
    Page<ScenicComment> findByScenicId(Long scenicId, Pageable pageable);

    /**
     * 景点评论的类型
     * @param category
     * @param scenicId
     * @param pageable
     * @return
     */
    Page<ScenicComment> findByCategoryAndScenicId(Integer category, Long scenicId, Pageable pageable);

}
